#ifndef HYBRIDPLUGININTERFACE_H
#define HYBRIDPLUGININTERFACE_H

#include <QMainWindow>

class QWebFrame;

class HybridPluginInterface
{
public:
    virtual ~HybridPluginInterface() {}

    /**
     * Set environment variables. 
     * 
     * @param parentWindow Parent window, can be used to control menu bar for example from plugin.
     * @param webFrame Current webframe so plugin can evaluate javascript etc. 
     */
    virtual void setEnvironment(QMainWindow *parentWindow, QWebFrame *webFrame)=0;
    
    /**
     *	TODO: is this needed if we use plugin factory?	 
     */
    virtual QString jsObjectName()=0;
    
    /**
     * Return instance of the actual API implementation.
     * 
     * @return Instance of the API implementation. 
     */
    virtual QObject *jsObjectInstance()=0;
    
    /**
     * 
     * @return Name of the javascript wrapper file.
     */
    virtual QString jsFileName()=0;
};

QT_BEGIN_NAMESPACE
Q_DECLARE_INTERFACE(HybridPluginInterface, "com.nokia.fwui.HybridPluginInterface/1.0");
QT_END_NAMESPACE

#endif // HYBRIDPLUGININTERFACE_H
